<!DOCTYPE html>
<html lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>GCC 13 Release Series &mdash; Changes, New Features, and Fixes</title>
<link rel="stylesheet" type="text/css" href="https://gcc.gnu.org/gcc.css" />
</head>

<!-- GCC maintainers, please do not hesitate to contribute/update
     entries concerning those part of GCC you maintain!
-->

<body>
<h1>GCC 13 Release Series<br/>Changes, New Features, and Fixes</h1>

<p>
This page is a "brief" summary of some of the huge number of improvements
in GCC 13.
You may also want to check out our
<a href="porting_to.html">Porting to GCC 13</a> page and the
<a href="../onlinedocs/index.html#current">full GCC documentation</a>.
</p>

<p>Note: GCC 13 has not been released yet, so this document is
a work-in-progress.</p>

<!-- .................................................................. -->
<h2>Caveats</h2>
<ul>
  <li>...</li>
</ul>


<!-- .................................................................. -->
<h2 id="general">General Improvements</h2>

<ul>
  <li><a href="https://gcc.gnu.org/projects/gomp/">OpenMP</a>
  <ul>
    <li>The following OpenMP 5.1 features have been added: the
    <code>omp_all_memory</code> reserved locator, the <code>inoutset</code>
    modifier to the <code>depend</code> clause, the <code>nowait</code>
    clause for the <code>taskwait</code> directive and the
    <code>omp_target_is_accessible</code>, <code>omp_target_memcpy_async</code>,
    <code>omp_target_memcpy_rect_async</code> and
    <code>omp_get_mapped_ptr</code> API routines. Fortran now supports
    non-rectangular loop nests, which were added for C/C++ in GCC 11.</li>
  </ul>
  </li>
  <li>
    AddressSanitizer defaults to <code>detect_stack_use_after_return=1</code> on GNU/Linux targets.
    For compatibility, it can be disabled with <code>env ASAN_OPTIONS=detect_stack_use_after_return=0</code>.
  </li>
</ul>


<!-- .................................................................. -->
<h2 id="languages">New Languages and Language specific improvements</h2>

<!-- <h3 id="ada">Ada</h3> -->

<!-- <h3 id="c-family">C family</h3> -->

<h3 id="c">C</h3>
<ul>
  <li>New warnings:
    <ul>
      <li><code>-Wenum-int-mismatch</code> warns about mismatches between an
	  enumerated type and an integer type
	  (<a href="https://gcc.gnu.org/PR105131">PR105131</a>)</li>
    </ul>
  </li>
</ul>

<h3 id="cxx">C++</h3>
<ul>
  <li>Several C++23 features have been implemented:
    <ul>
      <li><a href="https://wg21.link/p2324">P2324R1</a>, Labels at the end of
	  compound statements (<a href="https://gcc.gnu.org/PR103539">PR103539</a>)
      </li>
      <li><a href="https://wg21.link/p2255">P2255R2</a>, A type trait to detect
	  reference binding to temporary
	  (<a href="https://gcc.gnu.org/PR104477">PR104477</a>)
      </li>
    </ul>
  </li>
</ul>

<!-- <h4 id="libstdcxx">Runtime Library (libstdc++)</h4> -->

<!-- <h3 id="d">D</h3> -->

<!-- <h3 id="fortran">Fortran</h3> -->

<!-- <h3 id="go">Go</h3> -->

<!-- .................................................................. -->
<!-- <h2 id="jit">libgccjit</h2> -->

<!-- .................................................................. -->
<h2 id="targets">New Targets and Target Specific Improvements</h2>

<!-- <h3 id="aarch64">AArch64</h3> -->

<h3 id="amdgcn">AMD Radeon (GCN)</h3>
<ul>
  <li>Support for the Instinct MI200 series devices (<a
      href="https://gcc.gnu.org/onlinedocs/gcc/AMD-GCN-Options.html">
      <code>gfx90a</code></a>) has been added.</li>
</ul>

<!-- <h3 id="arc">ARC</h3> -->

<h3 id="arm">arm</h3>
<ul>
  <li>The STAR-MC1 CPU is now supported through the <code>star-mc1</code>
  argument to the <code>-mcpu</code> and <code>-mtune</code> options.
  </li>
</ul>

<!-- <h3 id="avr">AVR</h3> -->

<!-- <h3 id="x86">IA-32/x86-64</h3> -->

<!-- <h3 id="mips">MIPS</h3> -->

<!-- <h3 id="mep">MeP</h3> -->

<!-- <h3 id="msp430">MSP430</h3> -->

<!-- <h3 id="nds32">NDS32</h3> -->

<!-- <h3 id="nios2">Nios II</h3> -->

<!-- <h3 id="nvptx">NVPTX</h3> -->

<!-- <h3 id="hppa">PA-RISC</h3> -->

<!-- <h3 id="powerpc">PowerPC / PowerPC64 / RS6000</h3> -->

<!-- <h3 id="s390">S/390, System z, IBM z Systems</h3> -->

<!-- <h3 id="riscv">RISC-V</h3> -->

<!-- <h3 id="rx">RX</h3> -->

<!-- <h3 id="sh">SH</h3> -->

<!-- <h3 id="sparc">SPARC</h3> -->

<!-- <h3 id="Tile">Tile</h3> -->

<!-- .................................................................. -->
<h2 id="os">Operating Systems</h2>

<!-- <h3 id="aix">AIX</h3> -->

<!-- <h3 id="fuchsia">Fuchsia</h3> -->

<!-- <h3 id="dragonfly">DragonFly BSD</h3> -->

<!-- <h3 id="freebsd">FreeBSD</h3> -->

<!-- <h3 id="gnulinux">GNU/Linux</h3> -->

<!-- <h3 id="rtems">RTEMS</h3> -->

<!-- <h3 id="solaris">Solaris</h3> -->

<!-- <h3 id="vxmils">VxWorks MILS</h3> -->

<!-- <h3 id="windows">Windows</h3> -->


<!-- .................................................................. -->
<!-- <h2>Documentation improvements</h2> -->

<!-- .................................................................. -->
<!-- <h2 id="plugins">Improvements for plugin authors</h2> -->

<!-- .................................................................. -->
<h2>Other significant improvements</h2>

<!-- <h3 id="uninitialized">Eliminating uninitialized variables</h3> -->

<!-- .................................................................. -->
<!-- <h2 id="13.1">GCC 13.1</h2> -->

</body>
</html>
